﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Project5.Models;

namespace Project5.DAL
{
    interface ISurveyDAL
    {
        List<SurveyModel> FindAllSurveys();
        List<SurveyModel> FindAllSurveys(string username);
        string RenameSurvey(int id, string newName);
        bool SetMonetized(int id, bool monetizedVal);
        void actionSurvey(int id, int newState);
        SurveyModel Add(SurveyModel model);
        QuestionModel Add(QuestionModel model);
        ResponseModel Add(ResponseModel model);
        List<QuestionModel> FindAllQuestions();
        List<QuestionModel> FindAllQuestions(int surveyid);
        List<QuestionModel> FindAllQuestionsEager(int surveyid);
        List<ResponseModel> FindAllResponses();
        List<ResponseModel> FindAllResponses(SurveyModel model);
        void Delete(int model);
        void DeleteQuestion(int id);
        void DeleteChoice(int id);
        void DeleteChoices(List<ChoiceModel> choices);
        void updateResponse(ResponseModel rmodel);
        bool Update(QuestionModel newModel, QuestionModel oldModel);
        SurveyModel FindSurvey(int id);
        QuestionModel FindQuestion(int id);
        QuestionModel FindQuestionEager(int id);
        ResponseModel FindResponse(int id);
        ResponseModel FindResponseByQuestionAndSessionId(int qid, int sessionId);
        void AddProctor(string name, int id);

        List<ProctorModel> FindAllProctors(int surveyID);

        List<PaymentModel> FindAllPaymentInfo();
        PaymentModel Add(PaymentModel model, string username);
        PaymentModel FindPaymentInfo(string username);
    }
}
